﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using APA_DAO;
using TAM_SPORT;

namespace AMS
{
    public partial class FrmEditMoto : Form
    {
        public FrmEditMoto()
        {
            InitializeComponent();
        }
        private int soThuePhong = 0;

        private int id = 0;
        public FrmEditMoto(int soThuePhong)
        {
            InitializeComponent();
            this.soThuePhong = soThuePhong;
            loadGrid(soThuePhong);
            this.BackColor = Color.LightCyan;
        }

        private void loadGrid(int soThuePhong)
        {
            dtgMoto.Rows.Clear();
            MotoDao dao = new MotoDao();
            DataTable table = dao.getMotos(soThuePhong);
            if (table != null)
            {
                int i = 0;
                foreach (DataRow row in table.Rows)
                {
                    i = dtgMoto.Rows.Add();
                    dtgMoto.Rows[i].Cells[0].Value = i + 1;
                    dtgMoto.Rows[i].Cells[1].Value = row["TEN_CHU_SO_HUU"].ToString();
                    dtgMoto.Rows[i].Cells[2].Value = row["SO_XE"].ToString();
                    dtgMoto.Rows[i].Cells[3].Value = row["SO_KHUNG"].ToString();
                    dtgMoto.Rows[i].Cells[4].Value = row["SO_MAY"].ToString();
                    dtgMoto.Rows[i].Cells[7].Value = row["ID"].ToString();
                }
            }
        }

        private void loadMitoInfo(int id)
        {
            MotoDao dao = new MotoDao();
            DataRow moto = dao.getMotoById(id);
            if (moto != null)
            {
                txtChuSoHuu.Text = moto["TEN_CHU_SO_HUU"].ToString();
                txtSoXe.Text = moto["SO_XE"].ToString();
                txtSoKhung.Text = moto["SO_KHUNG"].ToString();
                txtSoMay.Text = moto["SO_MAY"].ToString();
                this.id = id;
            }
            else
            {
                Error er = new Error("Không tìm thấy xe máy này.");
                er.ShowDialog();
                er.Dispose();
            }
        }
        private void btnAdd_Click(object sender, EventArgs e)
        {
            MotoDao dao = new MotoDao();
            StringBuilder strErr = new StringBuilder();
            int i =0;
            bool errflg = false;
            if (string.IsNullOrEmpty(txtChuSoHuu.Text))
            {
                i++;
                strErr.Append(i + ". Chưa nhập tên chủ sở hữu.");
                errflg = true;
            }
            if (string.IsNullOrEmpty(txtSoXe.Text))
            {
                i++;
                if (errflg)
                {
                    strErr.Append("\n");
                }
                strErr.Append(i + ". Chưa nhập biển số xe.");
                errflg = true;
            }

            if (string.IsNullOrEmpty(txtSoKhung.Text))
            {
                i++;
                if (errflg)
                {
                    strErr.Append("\n");
                }
                strErr.Append(i + ". Chưa nhập số khung.");
                errflg = true;
            }

            if (string.IsNullOrEmpty(txtSoMay.Text))
            {
                i++;
                if (errflg)
                {
                    strErr.Append("\n");
                }
                strErr.Append(i + ". Chưa nhập số máy.");
                errflg = true;
            }
            if (!errflg)
            {
                if (id <= 0)
                {
                    if (dao.insertMoto(this.soThuePhong, txtSoXe.Text, txtSoKhung.Text, txtSoMay.Text, txtChuSoHuu.Text))
                    {
                        Result re = new Result("Lưu thành công.");
                        re.ShowDialog();
                        re.Dispose();
                        loadGrid(this.soThuePhong);
                        txtSoXe.Text = "";
                        txtSoMay.Text = "";
                        txtSoKhung.Text = "";
                        txtChuSoHuu.Text = "";
                    }
                    else
                    {
                        Error err = new Error("Lưu thất bại.");
                        err.ShowDialog();
                        err.Dispose();
                    }
                }
                else
                {
                    if (dao.updateMoto(this.id, txtSoXe.Text, txtSoKhung.Text, txtSoMay.Text, txtChuSoHuu.Text))
                    {
                        Result re = new Result("Lưu thành công.");
                        re.ShowDialog();
                        re.Dispose();
                        loadGrid(this.soThuePhong);
                        this.id = 0;
                        txtSoXe.Text = "";
                        txtSoMay.Text = "";
                        txtSoKhung.Text = "";
                        txtChuSoHuu.Text = "";
                    }
                    else
                    {
                        Error err = new Error("Lưu thất bại.");
                        err.ShowDialog();
                        err.Dispose();
                    }
                }
            }
            else
            {
                Error err = new Error(strErr.ToString());
                err.ShowDialog();
                err.Dispose();
            }
            
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.id = 0;
            txtChuSoHuu.Text = "";
            txtSoKhung.Text = "";
            txtSoMay.Text = "";
            txtSoXe.Text = "";
        }

        private void dtgMoto_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            
        }

        private void dtgMoto_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0)
            {
                int id = int.Parse(dtgMoto.Rows[e.RowIndex].Cells[7].Value.ToString());
                if (e.ColumnIndex == 5)
                {
                    loadMitoInfo(id);
                }
                if (e.ColumnIndex == 6)
                {
                    Confirm f = new Confirm("Bạn muốn xóa thông tin xe máy này.");
                    f.ShowDialog();
                    if (f.IsAccept)
                    {
                        MotoDao dao = new MotoDao();
                        if (dao.deleteMoto(id))
                        {
                            Result re = new Result("Xóa thành công.");
                            re.ShowDialog();
                            re.Dispose();
                            loadGrid(this.soThuePhong);
                        }
                        else 
                        {
                            Error er = new Error("Xóa thất bại.");
                            er.ShowDialog();
                            er.Dispose();
                        }
                        f.Dispose();
                    }
                }
            }
        }
    }
}
